from api.login import LoginAPI
#创建测试类
class Test_loginAPI:
    #定义一个全局变量（类属性）来储存uuid
    uid=None
    #前置操作
    def setup_method(self):
        #将第一步导入进来的接口类（LoginAPI）实例化为一个对象
        self.login_api=LoginAPI()
        #将验证码接口返回的uuid提取出来
        resp=self.login_api.get_verify_code()#通过上一步实例化的对象，
        # 调用验证码方法，# 拿到验证码接口的整个响应结果，并且保存到一个变量resp中
        Test_loginAPI.uid=resp.json().get("uuid")
    #后值操作
    def teardown_method(self):
        pass
    #编写测试用例
    #登录成功
    def test01_success(self):
        login_data={"username":"admin",
                    "password":"HM_2023_test",
                    "code":"2",
                    "uuid":Test_loginAPI.uid}
        resp=self.login_api.login(test_data=login_data)
        #断言状态码是否为200
        assert 200 == resp.status_code
        #断言响应数据中是否包含”成功“
        assert "成功" in resp.text
        #断言响应数据中code值是否为200
        assert 200 == resp.json().get("code")
    #登录失败（用户名为空）
    def test02_without_username(self):
        login_data1 = {"username": "",
                        "password": "HM_2023_test",
                        "code": "2",
                        "uuid": Test_loginAPI.uid}
        resp1 = self.login_api.login(test_data=login_data1)
        assert "用户不存在" in resp1.text
      #登录失败（未注册用户名）
    def test03_username_not_exiet(self):
        login_data2 = {"username": "admin23",
                        "password": "HM_2023_test",
                        "code": "2",
                        "uuid": Test_loginAPI.uid}
        resp2 = self.login_api.login(test_data=login_data2)
        assert "用户不存在" in resp2.text